1. Field of the Invention
The present invention relates generally to an apparatus and method for decoding coded symbols. More particularly, the present invention relates to an apparatus and method for decoding symbols coded by Reed-Solomon (R-S) coding.
2. Description of the Related Art
In a process of storing or transmitting data, various coding methods are used to secure data stability. Generally, a mobile communication system uses a typical coding method such as a convolutional coding method, turbo coding method, or R-S coding method used to safely transmit data. The mobile communication system uses either one of the coding methods separately, or two or more of the coding methods together. If symbols stored in a recording medium after being coded by the coding methods are read and transmitted, a receiver must decode the coded data in order to acquire the original data or information. Therefore, a communication system or a data reading apparatus requires decoding apparatuses.
In the following description of a decoding process, it will be assumed for convenience purposes that when a communication system transmits data, a receiver acquires the original data or information, from received coded symbols.
When an error exists in received symbols, a decoding apparatus detects the error and performs an iterative decoding process on the received symbols, thereby acquiring correct data. The iterative decoding process is performed in a convolutional decoder or a turbo decoder in a receiver when coding is performed using a convolutional encoder or a turbo encoder in a transmitter. When data is coded by the R-S coding method, an R-S decoder in a receiver performs the iterative decoding process only for a particular case. A brief description of the R-S decoder will now be described.
The R-S decoder, which is a block code decoder, performs error correction on a block-by-block basis. In particular, the R-S decoder is usefully used in a satellite Digital Multimedia Broadcasting (DMB) receiver for mobile reception. An R-S encoder uses R-S codes as outer codes of concatenated codes together with convolutional codes in a satellite DMB system.
In the satellite DMB system, if a transmitter transmits over a broadcast channel, data of a total of 204 bytes, the sum of actual broadcast data (hereinafter referred to as “effective data”) of 188 bytes and a parity of 16 bytes generated using an R-S encoder, a receiver detects the number of errors and positions of the errors using a 16-byte parity and corrects the errors.
Also, if the transmitter transmits over a pilot channel, data of a total of 96 bytes, the sum of 80-byte effective data and a 16-byte parity generated using the R-S encoder, the receiver detects the number of errors and positions using the 16-byte parity and corrects the errors.
A brief description will now be made of a process of receiving satellite DMB service.
FIG. 1 is a block diagram illustrating a structure of a conventional satellite DMB reception apparatus. With reference to FIG. 1, a brief description will now be made of a conventional method for receiving satellite DMB service.
Referring to FIG. 1, a satellite broadcast signal received from a DMB satellite or a gap filler, which is a terrestrial repeater, is input to a bit deinterleaver 110. The bit deinterleaver 110 deinterleaves the received satellite broadcast signal bit by bit in order to convert a burst error into scattered errors, and outputs the deinterleaved satellite broadcast signal to a Viterbi decoder 120.
The Viterbi decoder 120 error-corrects the deinterleaved satellite broadcast signal, and outputs the error-corrected satellite broadcast signal to a byte deinterleaver 130. The byte deinterleaver 130 deinterleaves the satellite broadcast signal output from the Viterbi decoder 120 on a byte-by-byte basis. The byte deinterleaver 130 converts a burst error into scattered errors on a byte-by-byte basis in order to correct a possible burst error occurring when the Viterbi decoder 120 fails in the error correction. The byte deinterleaver 130 outputs the deinterleaved satellite broadcast signal to an R-S decoder 140.
The R-S decoder 140 error-corrects the deinterleaved satellite broadcast signal using parity data, and outputs the error-corrected satellite broadcast signal to a conditional access system (CAS) 150. The CAS 150 performs a predetermined reception authentication process on a CAS channel signal received from the R-S decoder 140. If the satellite broadcast signal passes the reception authentication in the CAS 150, the satellite broadcast signal is provided to a demultiplexer 170 via a dual port read access memory (DPRAM) 160. The demultiplexer 170 demultiplexes the error-corrected satellite broadcast signal received from the R-S decoder 140 into audio data and video data, and outputs the audio data and video data to an audio buffer 180 and video buffer 190, respectively. The audio data buffered in the audio buffer 180 is played back through an audio decoder (not shown), and the video data buffered in the video buffer 190 is played back through a video decoder (not shown).
The demultiplexer 170, audio buffer 180, video buffer 190, audio decoder, and video decoder constitute a Moving Picture Experts Group (MPEG) decoder.
When an error of 8 bytes or greater exists in input data, the R-S decoder 140 cannot correct the error. If the R-S decoder 140 fails in the error correction due to the oversized error, it discards the input data. In addition, the R-S decoder 140 sets a transport error indicator 200 in a header defined in an MPEG-2 transport stream (TS) shown in FIG. 2, to ‘1’, and delivers the MPEG-2 TS to the CAS 150 of FIG. 1. Then the CAS 150 performs the reception authentication process on a CAS channel signal received from the R-S decoder 140. If the satellite broadcast signal passes the reception authentication in the CAS 150, the satellite broadcast signal is provided to the demultiplexer 170 via the DPRAM 160. Then the demultiplexer 170 discards the error correction-failed data.
A process of generating parity bytes in an R-S encoder will now be described with reference to FIG. 3.
Referring to FIG. 3, effective data input to an nth adder 325 is provided to multipliers 311 through 315 where the effective data is multiplied by their own unique constants g0 through gn-k-1. Specifically, a first multiplier 311 multiplies the input effective data by a constant g0, and provides output to a first shift register 301. The first shift register 301 shifts the output of the first multiplier 311 and provides output to a first adder 321. A second multiplier 313 multiplies the input effective data by a constant g1, and provides output to the first adder 321. The first adder 321 adds the output of the second multiplier 313 to the output of the first shift register 301, and provides output to a second shift register 303. Similarly, an (n-k−1)th multiplier 315 multiplies the input effective data by a constant gn-k-1, and provides output to an (n−1)th adder 323. The (n−1)th adder 323 adds the output of the (n-k−1)th multiplier 315 to the output of an (n-k)th shift register (not shown), and provides output to an nth shift register 305. The nth shift register 305 shifts the output of the (n−1)th adder 323, and provides output to the nth adder 325. The nth adder 325 adds the output of the nth shift register 305 to an input xn-km(x), thereby generating parity.
That is, upon receiving the effective data, the R-S encoder multiplies the input effective data by constants go through gn-k-1 in multipliers while shifting the multiplied values using shift registers, thereby generating parity.
If all of the effective data bits are ‘0’, the R-S encoder generates and transmits all-zero parity along with the effective data.
In addition, if a receiver is located in a blanket area such as a tunnel, the R-S decoder may receive all-zero input data. In this instance, if the R-S decoder in the receiver performs decoding using the parity information, a determination is made that an error does not exist. As a result, an application chip (AP), that is, the demultiplexer 170, regards the received all-zero data as an error-free packet, even though the received all-zero data is a meaningless error packet. Therefore, the AP parses the received data, determining that the received data is a packet association table (PAT) with a packet identifier (PID) 210 of FIG. 2 being set to ‘0’ (PID=0). Such an error indication failure, that is, a failure to distinguish between an error packet and an error-free packet, may cause mis-operation of a satellite DMB reception apparatus.
Accordingly, there is a need for an improved apparatus and method for detecting and correcting an error in an R-S decoder.